Importance of data types in programming

प्रोग्रामिंग में डेटा टाइप का महत्व

किसी भी प्रोग्रामिंग भाषा में टाइप (Type) का बहुत ही बड़ा महत्व है। टाइप का महत्व इस बात में निहित है कि जब हम किसी भी डेटा को स्टोर करते हैं, तो उस डेटा की प्रकृति के अनुसार हमें टाइप का निर्धारण करना होता है। क्योंकि प्रोग्राम को कुशलतापूर्वक (Efficiently) चलाने के लिए यह आवश्यक है कि उस डेटा का स्टोरेज, चाहे वह मेमोरी में हो या हार्ड डिस्क पर हो या किसी अन्य जगह पर हो, उसका स्टोरेज और एक्सट्रैक्शन (Extraction) कुशल तरीके से हो। ऐसा नहीं होने पर प्रोग्राम की कार्यक्षमता पर असर पड़ता है। मेमोरी की जगह बचाने के लिए भी सही टाइप का निर्णय करना उचित एवं आवश्यक है। उदाहरण के लिए, मान लीजिए कि आपको तीन अंकों (Digits) को स्टोर करना है, तो इसके लिए आप बाइट (Byte) या इंटीजर (Integer) जैसे डेटा टाइप (Data Type) का उपयोग कर सकते हैं।

टाइप केवल डेटा के स्टोरेज के बारे में ही नहीं बताता है, बल्कि उस डेटा के ऊपर किस प्रकार का ऑपरेशन (Operation) किया जा सकता है, इससे भी संबंधित है। उदाहरण के लिए, इंटीजर टाइप का डेटा यह बताता है कि इस तरह के डेटा के ऊपर गणितीय गणनाएँ (Mathematical Calculations) की जा सकती हैं। साथ ही साथ, कितनी बड़ी संख्या को इस डेटा टाइप को स्टोरेज के लिए दिया जा सकता है, यह भी निर्धारित होता है।

एप्लीकेशन के भीतर दो प्रकार के टाइप निश्चित रूप से पाए जाते हैं:

  1. बिल्ट-इन टाइप (Built-in Types): ऐसे टाइप जो पहले से ही प्रोग्राम में बने हुए होते हैं। उदाहरण के लिए, बाइट, इंटीजर, स्ट्रिंग (String) इत्यादि।
  2. कस्टम टाइप (Custom Types): यदि प्रोग्रामर खुद अपनी आवश्यकता के अनुसार टाइप का निर्माण करना चाहे, तो प्रोग्रामिंग भाषा में इसकी सुविधा दी गई होती है। उदाहरण के लिए, सी (C) प्रोग्रामिंग भाषा में डेवलपर (Developer) या प्रोग्रामर के द्वारा स्ट्रक्चर (Structure) नामक डेटा टाइप का प्रयोग करके कॉम्प्लेक्स डेटा टाइप (Complex Data Type) को स्टोर किया जा सकता है।

कॉम्प्लेक्स डेटा टाइप और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

जब हम कॉम्प्लेक्स डेटा टाइप की बात करते हैं, तो इसका अर्थ यह होता है कि इस डेटा टाइप का निर्माण भाषा में दिए गए बिल्ट-इन डेटा टाइप के मिलने से होता है। उदाहरण के लिए, यदि 'एम्प्लॉई' (Employee) नाम का स्ट्रक्चर बनाना हो, तो एम्प्लॉई का नाम, उसकी जन्मतिथि, उसकी सैलरी (Salary) इत्यादि अलग-अलग डेटा के डेटा टाइप के आधार पर कॉम्प्लेक्स डेटा टाइप अर्थात स्ट्रक्चर का निर्माण किया जाता है।

सी (C) प्रोग्रामिंग भाषा एक प्रोसीजर-ओरिएंटेड प्रोग्रामिंग (POP) एक प्रोग्रामिंग है। वर्तमान समय में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (Object-Oriented Programming - OOP) का जमाना है। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं जैसे सी शार्प (C#) या जावा (Java) इत्यादि में कॉम्प्लेक्स डेटा टाइप के रूप में आमतौर पर क्लास (Class) का प्रयोग किया जाता है। एक क्लास के भीतर डेटा को स्टोर करने के लिए फील्ड्स (Fields) दिए गए होते हैं। इसके अलावा, डेटा को रीड (Read) करने के लिए अथवा डेटा को राइट (Write) करने के लिए, इस तरह के ऑपरेशंस के लिए सी शार्प प्रोग्रामिंग में प्रॉपर्टी (Property) का कॉन्सेप्ट (Concept) दिया गया है। दूसरे शब्दों में, क्लास के भीतर प्रॉपर्टीज (Properties) होते हैं, जिनकी सहायता से क्लास के फील्ड्स के ऊपर रीड/राइट ऑपरेशन (Read/Write Operations) किया जा सकता है।

इसके अतिरिक्त, क्लास के भीतर क्लास के व्यवहार (Behavior) को परिभाषित करने के लिए क्लास के भीतर कुछ फंक्शंस (Functions) का निर्माण किया जाता है। इन फंक्शंस को हम मेथड (Method) के नाम से जानते हैं। ये फंक्शन क्लास के बिहेवियर को निर्धारित करते हैं। यहाँ यह बात ध्यान देने वाली है कि प्रॉपर्टी का उपयोग क्लास के भीतर फील्ड्स को रीड/राइट के उद्देश्य से बनाया जाता है, तो क्लास के मेथड का निर्माण क्लास के व्यवहार को परिभाषित करने के लिए किया जाता है। यदि क्लास के भीतर किसी प्रकार का मेथड नहीं हो, तो ऐसा क्लास केवल डेटा को स्टोर करने के उद्देश्य से उपलब्ध होगा। ऐसे क्लास का निर्माण करने से बेहतर है कि रिकॉर्ड (Record) का निर्माण किया जाए। सी शार्प प्रोग्रामिंग के अंतर्गत रिकॉर्ड एक ऐसा डेटा टाइप है जिसका मुख्य उद्देश्य डेटा को स्टोर करने और उसे रीड/राइट करने के उद्देश्य से उपयोग किया जाता है।

सी शार्प में कस्टम टाइप और एक्सेसिबिलिटी

सी शार्प प्रोग्रामिंग भाषा में कई प्रकार के कस्टम टाइप को निर्माण करने की सुविधा दी गई है, जैसे क्लास, इंटरफ़ेस (Interface), रिकॉर्ड, एनम (Enum) इत्यादि।

सी शार्प के अंतर्गत किसी टाइप के भीतर डेटा और उसके बिहेवियर को एनकैप्सुलेट (Encapsulate) करके रखा जाता है। यदि किसी क्लास के डेटा या बिहेवियर को किसी दूसरे क्लास के द्वारा एक्सेस (Access) करना हो, तो इसके लिए प्रोग्रामिंग भाषा में कुछ कीवर्ड (Keywords) प्रोवाइड किए गए हैं, जिनकी सहायता से उस टाइप की एक्सेसिबिलिटी (Accessibility) को निर्धारित किया जाता है। उदाहरण के लिए, यदि कोई टाइप पब्लिक (Public) है, इसका अर्थ यह है कि उस टाइप को एप्लीकेशन के भीतर या बाहर किसी दूसरे टाइप के द्वारा एक्सेस किया जा सकता है।

सी शार्प प्रोग्रामिंग भाषा में टाइप के लिए दो ही मॉडिफायर (Modifier) उपलब्ध हैं: पब्लिक और इंटरनल (Internal)

  • पब्लिक मॉडिफायर का अर्थ है कि टाइप किसी भी दूसरे टाइप के द्वारा एक्सेस किया जा सकता है, चाहे वह एप्लीकेशन के भीतर हो या बाहर।
  • जबकि इंटरनल एक्सेस मॉडिफायर यदि किसी टाइप के ऊपर लगता है, तो इसका अर्थ यह है कि उस टाइप का एक्सेस केवल उसी एप्लीकेशन के भीतर डीएलएल (DLL) के द्वारा किया जा सकता है, किसी दूसरे बाहरी डीएलएल (DLL) के द्वारा उस टाइप को एक्सेस नहीं किया जा सकता है।

मेंबर एक्सेसिबिलिटी

अभी तक हमने टाइप की एक्सेसिबिलिटी की बात की। अब हम बात करते हैं टाइप के मेंबर (Member) की एक्सेसिबिलिटी की। एक टाइप के भीतर जितने भी मेंबर होते हैं, चाहे वह फील्ड हो, प्रॉपर्टी हो, मेथड हो, इवेंट (Event) हो इत्यादि, इन सबके लिए भी एक्सेस मॉडिफायर (Access Modifier) का उपयोग किया जाता है। उदाहरण के लिए, पब्लिक, प्राइवेट (Private), प्रोटेक्टेड (Protected), प्रोटेक्टेड इंटरनल (Protected Internal), इंटरनल इत्यादि। इन अलग-अलग मॉडिफायर को समझने के लिए हमें एक ही टाइप के आपस के संबंधों को समझना जरूरी होता है। इसमें हम आगे चर्चा करेंगे। जैसे कि, एक क्लास को इनहेरिट (Inherit) करके कोई उसका चाइल्ड क्लास (Child Class) बनता है, तो उस केस (Case) में हम प्रोटेक्टेड का उपयोग करते हैं। लेकिन वर्तमान में यह समझना थोड़ा कठिन है, इसलिए इस विषय को तत्काल के लिए विराम देते हैं।

प्राइवेट, प्रोटेक्टेड और इनहेरिटेंस

प्राइवेट एक्सेस मॉडिफायर का उपयोग जब किसी टाइप के मेंबर के साथ किया जाता है, तो इसका अर्थ यह होता है कि उस मेंबर का उपयोग केवल उसी टाइप के भीतर किया जा सकता है। कोई भी दूसरा टाइप उस मेंबर को एक्सेस नहीं कर सकता है, जबकि पब्लिक मेंबर को किसी भी टाइप के द्वारा एक्सेस किया जा सकता है।

प्रोटेक्टेड मेंबर को एक्सेस उस टाइप के द्वारा या उस टाइप के जितने भी सब-टाइप्स (Sub-types) हैं, उनके द्वारा किया जा सकता है। यह समझने के लिए आपको पहले से इनहेरिटेंस (Inheritance) का कॉन्सेप्ट मालूम होना चाहिए। इनहेरिटेंस का शाब्दिक अर्थ है कि जब एक क्लास के मेंबर को कोई दूसरा क्लास इनहेरिट कर लेता है (यानी उसकी एक्सेस प्राप्त कर लेता है), तो इस रिलेशनशिप (Relationship) को इनहेरिटेंस कहते हैं।

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks